# -*- coding: utf-8 -*-
"""
Created on Fri Aug 25 08:45:23 2023

@author: skunk69
"""

import json

chinese_name = u'汉密顿焦虑量表'
english_name = 'Hamilton Anxiety Rating Scale'
abbreviation = 'HAMA'
category = u'精神病学临床量表'

outline = u"""汉密顿焦虑量表（Hamilton Anxiety Rating Scale，HAMA）由Hamilton于1959年编制，是精神科临床中常用的量表之一。特别适合于焦虑症状的严重程度评定，而不大用于估计各种精神病时的焦虑状态。HAMA适用于有焦虑症状的成年人，尤其是焦虑性神经症患者。由于神经症患者常同时有抑郁和焦虑，而HAMA和HAMD的项目内容有交叉，难以据此作鉴别。
由量表协作组（蔺国宪、朱昌明等）于1986年进行分析评定修订中国常模。"""

instruction = u"""请在“无症状”、“轻”、“中等”、“重”和“极重”中选择最适合被测量人情况的答案。"""


with open('HAMA.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for num,line in enumerate(lines[0:14]):
    _,value = line.strip().split('、',maxsplit=1)
    items[num+1] = value.strip()
    
items_definition = {}
for num,line in enumerate(lines[14::]):
    _,value = line.strip().split('、',maxsplit=1)
    items_definition[num+1] = value.strip()

reverse_items = []
scales = [u'躯体性焦虑',u'精神性焦虑']
scales_items = [
    list(range(7,14)),
    list(range(1,7))+[14]
    ]
factors = []
factors_scales = []
rating = [u'无症状',u'轻',u'中等',u'重',u'极重']
score_rules = list(range(5))

contents = {
    'instruction':instruction,
    'items':items,
    'items_definition':items_definition,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""汉密顿焦虑量表为一个他评量表。评定注意事项如下：
评定员由经过训练的精神科专业人员担任。
评定时间范围：入组时，评定当时或入组前一周的情况，治疗后2～6周，以同样方式，对入组患者再次评定，比较治疗前后的症状和病情的变化。
汉密顿焦虑量表中除14项需要结合观察外，所有项目都根据病人的口头叙述进行评分，同时特别强调受检者的主观体验。"""

reliability = u""""""
validity = u""""""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""总分能较好的反映病情严重程度。总分超过29分，可能为严重焦虑；超过21分，肯定有明显焦虑；超过14分，肯定有焦虑；超过7分可能有焦虑；如果小于6分，病人就没有焦虑症状。
因子分析：HAMA分躯体性和精神性两因子结构：
（1）躯体性焦虑（somatic anxiety）；由肌肉系统、感觉系统、心血管系统症状、呼吸系统症状、胃肠道症状、生殖泌秘系症状和植物神经系症状等7项组成。
（2）精神性焦虑（psychic anxiety）；由焦虑心境、紧张、害怕、失眠、认知功能、抑郁心境以及会谈时行为表现等7项组成。
通过因子分析，不仅可以具体反映病人的精神病理学特点，也可以反映症状群的治疗结果。"""

applications = u"""HAMA的广泛使用证明了其良好品质和适用性。HAMA既可以单独用来评估焦虑水平，又可以与特定的焦虑症状量表联合使用以便综合考虑一般焦虑水平和特定症状的严重程度。HAMA一致性好，长度适中，简便易行。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)